package com.loong.loong.hik.api.entity.door;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import lombok.Data;

/**
 * 卡片对象特征属性
 * @author jinyiang
 * @date 2023/3/22 10:03
 */
@Data
@TableName("hik_door_card")
public class HikDoorCard {

	/**
	 * 卡片编码（主键）
	 */
	@TableId(type = IdType.ASSIGN_ID)
	private String indexCode;

	/**
	 * 外部编码（联网编码）
	 */
	@NotBlank(message = "外部编码不能为空")
	@Size(max = 64, message = "外部编码长度不能超过64")
	private String externalIndexCode;

	/**
	 * 名称
	 */
	@NotBlank(message = "名称不能为空")
	@Size(max = 256, message = "名称长度不能超过256")
	private String cn;

	/**
	 * 父级资源编号（人员联网编码）
	 */
	@NotBlank(message = "父级资源编号不能为空")
	@Size(max = 64, message = "父级资源编号长度不能超过64")
	private String parentIndexCode;

	/**
	 * 卡片号码
	 */
	@NotBlank(message = "卡片号码不能为空")
	@Size(max = 64, message = "卡片号码长度不能超过64")
	private String cardNo;

	/**
	 * 所属人员ID
	 */
	@NotBlank(message = "所属人员ID不能为空")
	@Size(max = 64, message = "所属人员ID长度不能超过64")
	private String personId;

	/**
	 * 卡片类型
	 */
	@NotNull(message = "卡片类型不能为空")
	private Integer cardType;

	/**
	 * 卡片生效日期
	 */
	@NotNull(message = "卡片生效日期不能为空")
	private LocalDateTime startDate;

	/**
	 * 卡片失效日期
	 */
	@NotNull(message = "卡片失效日期不能为空")
	private LocalDateTime endDate;

	/**
	 * 创建时间
	 */
	@TableField(fill = FieldFill.INSERT)
	private LocalDateTime createTime;

	/**
	 * 更新时间
	 */
	@TableField(fill = FieldFill.UPDATE)
	private LocalDateTime updateTime;

	/**
	 * 扩展信息
	 */
	@Size(max = 512, message = "扩展信息长度不能超过512")
	private String extendData;

	/**
	 * 数据状态
	 */
	@NotNull(message = "数据状态不能为空")
	private Integer status;

}
